﻿namespace Jim.OA;

/// <summary>
/// 查看流程详情
/// </summary>
[Sdk("/api/workflow/paService/getWorkflowRequest","查看流程详情","get")]
public class OAGetWorkFlowInput : OAUserRequest<OAGetWorkFlowOutput>,ISdkCustomDic
{
    [Required(ErrorMessage = "流程Id不能为空")]
    public string RequestId { get; set; }

    public SdkDictionary Dic()
    {
        var dic = new SdkDictionary();
        dic.Add("requestId", RequestId);
        return dic;
    }
}


public class OAGetWorkFlowOutput : SdkResponse<OAWorkFlowData>
{

}


public class OAWorkFlowData
{
    public bool canEdit { get; set; }
    public bool canView { get; set; }
    public string createTime { get; set; }
    public string creatorId { get; set; }
    public string creatorName { get; set; }
    public string currentNodeId { get; set; }
    public string currentNodeName { get; set; }
    public string forwardButtonName { get; set; }
    public string lastOperateTime { get; set; }
    public string lastOperatorName { get; set; }
    public string messageType { get; set; }
    public bool mustInputRemark { get; set; }
    public bool needAffirmance { get; set; }
    public string rejectButtonName { get; set; }
    public string remark { get; set; }
    public string requestId { get; set; }
    public string requestLevel { get; set; }
    public string requestName { get; set; }
    public string status { get; set; }
    public string subbackButtonName { get; set; }
    public string submitButtonName { get; set; }
    public string subnobackButtonName { get; set; }
    public OAWorkflowBaseInfo workflowBaseInfo { get; set; }
    public List<OAWorkFlowDetailTableInfo> WorkflowDetailTableInfos { get; set; }
    public string[] workflowHtmlShow { get; set; }
    public string[] workflowHtmlTemplete { get; set; }
    public OAWorkFlowMianTableInfo WorkflowMainTableInfo { get; set; }
    public OAWorkflowRequestLog[] WorkflowRequestLogs { get; set; }
}



public class OAWorkflowRequestLog
{
    public string Id { get; set; }
    public string AnnexDocHtmls { get; set; }
    public string NodeId { get; set; }
    public string NodeName { get; set; }
    public string OperateDate { get; set; }
    public string OperateTime { get; set; }
    public string OperateType { get; set; }
    public string OperatorDept { get; set; }
    public string OperatorId { get; set; }
    public string OperatorName { get; set; }
    public string ReceivedPersons { get; set; }
    public string Remark { get; set; }
    public string SignDocHtmls { get; set; }
    public string SignWorkFlowHtmls { get; set; }
}

public class OAWorkFlowDetailTableInfo
{
    public string TableDBName { get; set; }
    public string[] TableFieldName { get; set; }
    public string TableTitle { get; set; }
    public List<OAWorkFlowRequestRecord> workflowRequestTableRecords { get; set; }

}

public class OAWorkFlowMianTableInfo
{
    public List<OAWorkFlowRequestRecord> RequestRecords { get; set; }

    public string TableDBName { get; set; }

}

public class OAWorkFlowRequestRecord
{
    public int RecordOrder { get; set; }
    public List<OAWorkFlowRequestTableField> WorkflowRequestTableFields { get; set; }
}
/// <summary>
/// 主表和明细表的数据
/// </summary>
public class OAWorkFlowRequestTableField
{
    public string browserurl { get; set; }
    public bool edit { get; set; }
    public string fieldDBType { get; set; }
    public string fieldFormName { get; set; }
    public string fieldHtmlType { get; set; }
    public string fieldId { get; set; }
    public string fieldName { get; set; }
    public string fieldOrder { get; set; }
    public string fieldShowName { get; set; }
    public string fieldShowValue { get; set; }
    public string fieldType { get; set; }
    public string fieldValue { get; set; }
    public string filedHtmlShow { get; set; }
    public bool mand { get; set; }
    public bool view { get; set; }
    public string[] selectnames { get; set; }
    public string[] selectvalues { get; set; }
}



public class OAGetWorkFlowResponse1
{
    public Dictionary<string, object> main { get; set; }

    public List<Dictionary<string, object>> details { get; set; }
}

